Many software development tools are available today for use by software designers (or “developers”) in creating various types of software applications. Software “designers” and “developers” are used interchangeably herein, and generally refer to anyone involved with using a software development tool (or “authoring tool”) for authoring a software application. Authoring may include coding, designing, and/or otherwise creating or modifying the software application. A software application, as used herein, generally refers to any application that may be executed by a processor (or interpreter of some type) in order to perform operations defined by the instructions of the software application, including as an example presenting a user interface to a display. One example of such a software application is a web page, which may be defined in a markup language, such as HTML, XML, etc., JavaScript, and/or other underlying page source code that may be read and interpreted by a browser to generate a corresponding output presentation of the web page to a display.
In a software development environment, a developer may interact with a software development tool for writing code, compiling the code, testing or debugging the code, and packaging the resulting application for deployment in a run-time environment. The software development tool may be implemented as a software application that is stored to a computer-readable medium and executed by a computer processor to perform the tasks associated with aiding a developer in the development of a software application. As one example, an integrated development environment (IDE) is commonly used for developing software applications. In general, an IDE is a programming environment that has been packaged as a software application program, typically including a code editor, a compiler, a debugger, and a graphical user interface (GUI) builder. The IDE may be a stand-alone application or may be included as part of one or more existing and compatible applications. IDEs provide a user-friendly framework for many modern programming languages, such as Visual Basic, Java, and PowerBuilder. IDEs for developing markup language (e.g., HTML, XML, etc.) applications are among the most commonly used.
Thus, IDEs provide software authoring tools that allow a developer (e.g., a web developer) to create web pages, websites, interactive applications, and the like for use by end users (e.g., visitors to websites). Various IDEs exist in the current marketplace, such as DREAMWEAVER®, available from Adobe Systems Incorporated, and FRONTPAGE®, available from Microsoft Corporation. DREAMWEAVER is one example of a software authoring tool that allows web developers to design Hypertext Markup Language (HTML) web pages in both a code editor and a graphical-based design time environment. DREAMWEAVER also allows the developer to design in other markup languages, such as, for example, Extensible Markup Language (XML), Extensible HTML (XHTML), Active Server Page (ASP), COLDFUSION™ Markup Language (CFML™), and the like.
Many software application authoring tools, as may be provided by an IDE, are available today for use by software developers in creating various types of software applications, including as examples such software code authoring tools as ADOBE® DREAMWEAVER® and MICROSOFT® FRONTPAGE®. Certain authoring tools, such as ADOBE® DREAMWEAVER®, allow a developer to create a document in an environment that includes both a text-based code view and a graphical-based design view. The code view renders the source code (e.g., markup language code) as text in a portion of the screen and allows the developer to see and manipulate the source code in the document file. For example, the developer may write and edit HTML or Cascading Style Sheets (CSS) code in the code view. The design view (or “display view”), on the other hand, is a What You See Is What You Get (WYSIWYG) view of the document that allows the user to visually manipulate the interpreted and graphically laid-out version of the document, such as, for example, by dragging, dropping, cutting, and pasting visual components. For instance, techniques similar to those employed by browsers may be employed for presenting the resulting output presentation (e.g., web page) of the underlying source code, wherein the developer may manipulate such output presentation within the design view. As the developer works, changes to the document are reflected in both the code view and the design view.
Once a designer creates source code (which may be referred to as a “source page”), such source code is typically stored to a web server that is accessible by clients via a communication network, such as the Internet. The clients may access the web server and download the source code, which a browser executing on the client's computer interprets to generate a corresponding output presentation, as is well known in the art.
Many software applications comprise a main file with one or more related files. In general, a “related file” refers to a file required to build another document. In some software development tools, such as DREAMWEAVER, these related files may be referred to as “dependent” files. For instance, a main file may be created that references one or more related files that must also be accessed/interpreted in order to generate a presentation output document. As an example, a main web page document (e.g., main HTML document) may be created that references other related files that are used to generate at least a portion of the presentation output that is to be presented by a client's browser for the web page. For instance, a main web page document may reference such related files as images, external style sheets, scripting language files (e.g., JavaScript files, etc.), and/or other files that a browser loads when it loads the web page. The browser may use the various related files to construct the output presentation document that is presented to the client.
As one example, style sheets, such as cascading style sheet (“CSS”), are commonly employed to help readers of web pages (e.g., browsers) to define visual layout of a web page's content, such as colors, fonts, layout, and other aspects of document presentation. In this manner, the style sheet may be designed primarily to enable the separation of document content (written in HTML or a similar markup language, e.g., in a main file) from document presentation (written in CSS). Thus, the main HTML file for a web page may be authored to define certain content and/or reference one or more other related files that provide certain content (e.g., image files) that is desired to be presented in an output presentation document that is to be generated when the web page is interpreted by an interpreter program (such as a client browser), and the main HTML file may reference one or more style sheets that define the visual layout of such content that is desired to be generated within the output presentation document. Such use of style sheets are well known in the art.
As another example, scripting language files, such as JavaScript (JS) files, are commonly employed to provide functions that may be executed during run-time of a web page by a browser to further define the visual presentation and/or actions of the output presentation document presented by the browser. Thus, a main web page document (e.g., main HTML document) may reference one or more scripting language files that are invoked for imparting certain functionality for the output presentation document presented by the browser. Such use of scripting language files are also well known in the art.
Web authors generally create and edit web pages that comprise a main file (e.g., a main HTML file) with many related files, such as external JS, CSS, XML, and/or other server-side files, such as other HTML files, ColdFusion Markup Language (CFML) files, PHP files, or active server pages (ASP) files. This is the common way to construct web pages to allow sharing and re-use of components, and the authored web pages can thus become fairly complex.
Thus, when authoring a web page (or website comprising a collection of web pages), a developer often desires to author/edit not only a main file, but also the various related files. Most software development tools, such as DREAMWEAVER, provide a function within a contextual menu to enable a user to open a related file. Software development tools may provide other techniques for opening related files. For instance, in certain tools a user may right-click a pointer (e.g., mouse) on a textual reference to a related file within a main file, and in response the user may be presented an option to open the related file. As another example, certain development tools, such as MAC Xcode software, provides a drop-down list of “#include” files, which is part of the C/C++ programming language preprocessor, wherein the user can select any of the “#include” files to open.
As still another example, DREAMWEAVER provides a visual map of linked icons, called a site map. A developer may use the site map to add new files to a DREAMWEAVER site, or to add, modify, or remove links. The site map shows the site structure two levels deep, starting from the home page. It shows pages as icons and displays links in the order in which they are encountered in the source code. Before a developer can display the site map, he must define a home page for the site. The site's home page is the starting point of the map and can be any page in the site. A developer can change the home page, the number of columns displayed, whether the icon labels display the filename or the page title, and whether to show hidden and dependent files, such as image or other non-HTML content that the browser loads and when it loads the main page. When working in the site map, the developer can select pages, open a page for editing, add new pages to the site, create links between files, and change page titles. Thus, the site map feature aids in laying out an overall website structure.
In any of the above-mentioned techniques for discovering and opening related files, each related file that is opened is opened in a separate window within the software development tool. The user is then tasked with managing the multiple windows. For instance, the user is often required to move, resize, tile, and/or perform other tasks for managing the view of the multiple windows for the related files. Such management of windows can become cumbersome and/or inefficient for the developer, and it may lead to difficulty in finding a window for a desired related file and/or understanding which related file the developer is viewing in a given window.
In view of the above, users of traditional software development environments have been required to search through menus and/or source code of a main file to discover related files, and the users are then tasked with opening any of the related files that the user desires to view and/or edit. Any such related files are opened in separate windows, and thus the user is then required to manage the separate windows in which the various related files are contained.
In view of the above, a desire exists for an improved related file management solution that enables a user-friendly way for developers to manage the view within a software development environment of the various related files of a given application (e.g., web page) that is being authored.